<script>
    /* 
    基本数据类型  不可变  改变是重新创建
        1.数字 number
        2.字符串 string
        3.布尔 boolean
            真：其余为真
            假：0 -0 null undefined NaN ''

        4.undefined
        5.null
    undefined和null相同点
        a、只有一个值
        b、参与判断都返回false
        c、没有方法
    不同点
        a、null是关键字 undefined不是
        b、使用typeof null是空对象  undefined就是undefined window属性的值就是undefined   
        c、undefined 未定义  null 已经初始化
        d、转换数字 undefined：NaN    null：0
    建议
        赋值时用null
        判断使用==null
        使用===


    复杂数据类型  对象的引用进行比较
        对象 object

    typeof  操作符 
        所有的返回值都是字符串
    
    */

    // var undefined
   var a = true;
   var b = true;
   console.log(typeof a == b);//false 加括号
   console.log(window);

   console.log(undefined+1);//NaN
   console.log(null+1);//1
//    console.log(undefined.toString());
//    console.log(null.toString());
//    console.log(String(undefined));//undefined
//    console.log(String(null));//null
console.log(null+'');
console.log(undefined+'');
console.log(Number(true));
console.log(Number(false));
console.log('123124');
console.log(+true);
console.log(true);
if([]){
    console.log("真");
}
if(!NaN){
    console.log("NaN");
}

</script>